package com.sinog.front.controller.biz;

import com.sinog.core.model.UserDTO;
import com.sinog.core.utilbean.Result;
import com.sinog.front.config.log.Log;
import com.sinog.front.feign.biz.StaffInfoManageService;
import com.sinog.front.service.user.UserFacade;
import com.sinog.front.util.ObjectConvertUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @desc 安帮工作资源管理 - 安帮工作人员信息管理 - 安帮工作人员信息管理 StaffInfoManageController
 * @author dangyf
 * @date 2020年2月5日 20点48分
 */
@RestController
public class StaffInfoManageController {

    @Resource
    private StaffInfoManageService staffInfoManageService;
    @Autowired
    private UserFacade userService;

    /**
     * 安帮工作资源管理 - 安帮工作人员信息管理 - 安帮工作人员信息管理 - 列表
     * @param request request
     * @param searchKey 搜索条件
     * @param staffTypeSearch staffTypeSearch
     * @return String
     */
    @GetMapping("/azbj/gzzygl/getStaffInfoList")
    public String getStaffInfoList(HttpServletRequest request,
                                   @RequestParam(required = false, defaultValue = "-1") String searchKey,
                                   @RequestParam(required = false, defaultValue = "-1") String staffTypeSearch) {
        Integer pageIndex = Integer.valueOf(request.getParameter("pageIndex"));
        Integer pageSize = Integer.valueOf(request.getParameter("pageSize"));
        String departId = userService.getAuthentication().getDepartid();
        return staffInfoManageService.getStaffInfoList(searchKey,pageIndex,pageSize,staffTypeSearch,departId);
    }

    /**
     * 安帮工作资源管理 - 安帮工作人员信息管理 - 安帮工作人员信息管理 - （新增/更新）
     * @param request request
     * @param data data
     * @return Result
     */
    @Log(type = "新增", value = "保存安帮工作人员信息（新增/更新）")
    @PostMapping("/azbj/gzzygl/staffInfoManage/save")
    public Result staffInfoManageSave(HttpServletRequest request,String data) {
        UserDTO loginUser = userService.getAuthentication();
        Map<String,String> loginUserParam = ObjectConvertUtil.userToMap(loginUser);
        return staffInfoManageService.save(data,loginUserParam);
    }

    /**
     * 安帮工作资源管理 - 安帮工作人员信息管理 - 安帮工作人员信息管理 - 删除安帮工作人员信息
     * @param request request
     * @param id id
     * @return Result
     */
    @Log(type = "删除", value = "删除安帮工作人员信息")
    @DeleteMapping("/azbj/gzzygl/staffInfoManage/delete/{id}")
    public Result staffInfoManageDel(HttpServletRequest request,@PathVariable String id) {
        return staffInfoManageService.deleteOne(id);
    }

    /**
     * 安帮工作资源管理 - 安帮工作人员信息管理 - 安帮工作人员信息管理 - 查看
     * @param id id
     * @return Result
     */
    @GetMapping("/azbj/gzzygl/staffInfoManage/save/selectById")
    public Result selectStaffInfoManage(@RequestParam(required = false, defaultValue = "-1") String id) {
        return staffInfoManageService.selectStaffInfoManage(id);
    }
}